作者:徐育偉
現為零一零科技工程師
臺灣科技大學 工業管理系
那年選修時因為想嘗試不同領域,下定決心選修了「資料庫及APP開發」課程,和組員共同開發期末APP作品。雖然組員(包含我)大多數都是零程式基礎的白紙,但幸好協作過程中有賴句備程式經驗的朋友相助,讓我們整組得以順利完成當期的程式作業,這也是我人生第一次接觸到程式。
在那次的協作經驗裡,我從簡單功能的實踐、樣式設計上獲得相當大的成就感,就像初入新手村打敗第一隻怪一樣,我慢慢的在實作中獲得更多的經驗值,也啟發了對程式的興趣。
我從零開始學習到成功找到工作大約花了半年的時間,今天想和大家分享我的學習歷程,讓曾經或此刻正走著相同道路的讀者們可以相互參考。
我一開始主要透過 Freecodecamp網站學習,透過這個網站的手把手實作解題,教會了我對HTML、CSS、JavaScript的基本了解。
這個網站把重要的概念切成許多的小挑戰,每個挑戰不會花費太多時間或太困難,讓學生能保持解題的熱忱,同時學習到很多基本知識。
想成為一名前端工程師,JavaScript理所當然是相當重要的一環,因此後來我的整個學習歷程比較著重在JavaScript上面。
最初我先參與了免費的JavaScript 30課程,實作出30個JS小作品,對DOM的操控有更進一步的了解,但因為JS 30比較著重實作,沒有帶到很詳盡的概念,因此雖然常常在實作過程中使用某個寫法、API,卻不太清楚背後到底發生了什麼事情,導致最後作品雖然是完成了,但卻始終在一知半解的情況下。
為了彌補不足,之後我在Udemy上購買了Zero to Mastery以及JavaScript:Understanding the Weird Parts。
前者的教學主要是設計成一個有結構性並且生動的方式,淺談網站開發領域所需要的技能,講解JS的常見用法、規範並馬上帶你實踐,並把剛剛上過的教學內容做成小 Project,對加深記憶力滿有幫助的。雖然課程內容都是英文,但好在這個老師的教學方法很清楚、用字也不艱深,配上字幕基本上不會有太大的語言問題,所以就算英文沒有很好也不用太擔心。
後者是偏重JS概念的教學,例如閉包、IIFE、同步/非同步、Recursion、Scope、This、Prototype等等,都用很簡單、直白的方式解釋給你聽,絕對是在面試前必買必溫習的一堂課。
以Udemy一堂三百多塊新台幣的訂價來說,這兩堂真的是非常物超所值,也非常適合時間零碎、手頭緊、不確定自己是否要走前端的夥伴試試!
從自學的環境轉入職場難免會遇到陣痛期,雖然獲得了工作,但因為沒有過太多共同開發經驗,我到職第一週就趕緊設置系統環境、學習Git Flow開發流程及React框架Gatsby.js/Next.js,以及能快速開發樣式的Tailwind、Chakra-ui框架等,從切版到跨部門溝通開發功能需求及CMS後台Schema的設計等。
由於非本科系半路出家,我在CS這塊的相關知識很貧乏,以往自己的Project 只要求能動就好,但公司專案必須謹慎對待,需要考慮到很多面向,例如:程式碼的可讀性、可維護性及效能。
前期還很菜的時候容易先Brute Force蠻幹出需求,沒顧慮到時間複雜度及可讀性等等的問題,所幸有公司的大神們:Gary和白白,不停給出充滿愛與包容的溫馨提點,例如在公司提出需求時,他們教我不要急著寫code,應該要先了解「為什麼會有這個需求?此需求是否能在不寫程式的情況下達成目的」,若需要寫code也要事先想好程式邏輯及corner case ...等等。
舉例來說近期專案為了改善文章編輯在上文章時的效率,需要自動內鏈關鍵字功能,最單純的想法可能是逐字做比對再替換成連結,但考慮到效能問題,大神就提出了「使用斷詞技術」這個想法,事先設定好公司需要的單詞,再以此來切割文章,用專門的套件免去掉每個關鍵字都需要逐字從頭比對的問題。
此外,也藉由工程內部的Code Review及下了班後的自我技能補足,漸漸的,我的程式不再慘不忍睹,並學習到相當多難能可貴的經驗與技巧。
在公司幾個月磨練與學習下,我總共參與了6個網頁專案,其中包含4個網站重構以及2個全程開發,其中的健康010是一個與許多健康方面的專家合作建立的健康知識型平台,網站從正式上線至今只有短短2個多月時間,不論是在LightHouse或WebPageTest等擴充工具運算下,網站速度及SEO都有達到很高的分數,站內還包含了非常多精美的頁面設計、豐富的文章內容及多元的功能,不嫌棄的話,歡迎各位動動手指一起參觀這個作品:https://health010.tw。
感謝零一零科技所有主管及同事的愛戴與耐心指導下才有現在亮眼的成績,未來希望自己不忘抱持著當初挑戰前端的這份熱忱,繼續專研網站開發這個廣大而未知的領域,若時間允許之下也會開始研究後端領域,努力變成一個更全面的工程師。